\bigskip
\bigskip
{\magonebf 5.13 Miscellaneous}
\bigskip
{\bf 5.13.1 Some useful functions}
\bigskip

\cleartabs
\+$void$ complete\_graph($graph\&\ G,\ int\ n$) &\cr
\+                           &creates a complete graph $G$ with $n$ nodes.\cr
\+\cr
\+$void$ random\_graph($graph\&\ G,\ int\ n,\ int\ m$)\cr
\+                           &creates a random graph $G$ with $n$ nodes\cr
\+                           &and $m$ edges.\cr
\+\cr
\+$void$ test\_graph($graph\&\ G$)
                             &creates interactively a user defined graph $G$.\cr
\+\cr
\+$void$ test\_bigraph($graph\&\ G,\ nodelist\&\ A,\ nodelist\&\ B$)\cr
\+                           &creates interactively a user defined bipartite\cr
\+                           &graph $G$ with sides $A$ and $B$. All edges are\cr
\+                           &directed from $A$ to $B$.\cr
\+\cr
\+$bool$ compute\_correspondence($graph\&\ G,\ edge\_array(edge)\&\ reversal$)\cr
\+                           &computes for every edge $e = (v,w)$ in $G$ its\cr
\+                           &reversal $reversal[e] = (w,v)$ in $G$ ( nil if\cr
\+                           &not present). Returns true if every edge has a\cr
\+                           &reversal and false otherwise.\cr
\+\cr
\+$void$ eliminate\_parallel\_edges($graph\&\ G$)\cr
\+                           &removes all parallel edges from $G$.\cr

   
\bigskip
{\bf 5.13.2 Predefined parameterized types}
\cleartabs
\+\hskip 8truecm &\cr
\+$list(node)$                  &$list(edge)$\cr
\+\cr
\+$node\_array(int)$            &$edge\_array(int)$\cr
\+$node\_array(bool)$           &$edge\_array(bool)$\cr
\+$node\_array(real)$           &$edge\_array(real)$\cr
\+$node\_array(node)$           &$edge\_array(node)$\cr
\+$node\_array(edge)$           &$edge\_array(edge)$\cr
\+\cr
\+$node\_matrix(int)$\cr
\+$node\_matrix(bool)$\cr
\+$node\_matrix(real)$\cr

\vfill\eject

